package com.liuyc.lib.common.base

import android.os.Bundle
import android.view.View
import android.view.ViewGroup
import androidx.fragment.app.Fragment

/**
 * BaseFragment
 * layoutId 就是 fragment 的布局资源id
 * 基础类
 * 静态页，不涉及数据变更等操作的 纯UI 操作 可以不使用 MVVM 模式 直接继承这个类使用
 * 非静态，有数据变更操作 必须继承 ViewBaseFragment
 * 刘隽
 */
abstract class BaseFragment constructor(private val layoutId: Int) : Fragment(layoutId) {


    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
        super.onViewCreated(view, savedInstanceState)

        initViewBefore()
        initView()
        initViewAfter()
    }




    /**
     * 在initView 之前的操作
     * 此地  可以获取到 从其他页面传递的参数等
     */
    abstract fun initViewBefore()

    /**
     * 初始化 视图
     */
    abstract fun initView();

    /**
     * initView 之后的操作，
     * 可以设置 视图元素 需要的数据，监听方法等操作
     */
    abstract fun initViewAfter();
}